【錢,要花在刀口上】
測試,是測不完的。
測試是用來提昇品質、降低風險的手段之一。(當然,當你打通任督二脈之後,你還可以拿測試來加速開發。)
資源有限、時間有限,所以測試的投資,需要考慮 ROI(投資報酬比)。
※ 就像你不會(也不該)把畢生積蓄,全都拿去買意外險一樣。
by the way,「只」想透過「測試」來提昇「品質」,是很吃力的,測試只是其中一個實踐。
要提昇品質,產品開發過程中還有許多你該落實的實踐,例如:
☑ Specification by Examples
☑ ATDD/TDD
☑ Unit Testing
☑ Code Review
☑ Pair Programming
☑ Commit Frequently
☑ Continuous Integration
☑ Exploration Testing
☑ API/Integration Testing
☑ Manual Testing (你沒看錯)
☑ Production Monitoring
☑ Third-Party Services Monitoring
☑ Exception Monitoring and Analyzing
...
上述有些實踐,不只是提昇品質的好處,所以,找到導入的 road map,找到綜效甜頭比較大、抗拒比較小的切入點,還是相當重要的。
▍補上之前給學員的提醒
不要忘了、也不要企圖,只用自動化測試,想要防止一切 bug 的發生,你應該還要有 pair programming, code review, 其他的自動化回歸測試, 各個環境的手動測試,都通過之後,才 deliver to production。
經過這一連串的把關,如果 production 還發生邏輯上的 bug,那我敢跟你保證,那個 bug 絕對不是主要流程,影響範圍小,甚至不影響你的價值或業務。
那時你應該把重點放在,如何快速的 fix 它,快速地上版,而不是糾結在還沒交付前,「把畢生積蓄拿來買意外險」。